home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / hamradio / tnos-2.000 / tnos-2 / hasher.c < prev    next >
C/C++ Source or Header  |  1996-06-22  |  1KB  |  70 lines

  1. #include <stdio.h>
  2. #ifdef __bsdi__
  3. #include <stdlib.h>
  4. #endif
  5. #ifdef  __STDC__
  6. #define __ARGS(x)       x
  7. #else
  8. #define __ARGS(x)       ()
  9. #endif
  10.  
  11.  
  12. #include <string.h>
  13. #include "md5.c"
  14.  
  15.  
  16. #if !defined(_lint) && !defined(MSDOS)
  17. static char rcsid[] OPTIONAL = "$Id: hasher.c,v 1.5 1996/06/22 18:20:37 root Exp root $";
  18. #endif
  19.  
  20. char* basename(char*);
  21.  
  22. char *
  23. basename (char *name)
  24. {
  25. char *retval;
  26.  
  27.     if (!(retval = strrchr (name, '/')))
  28.         retval = name;
  29.     return (retval);
  30. }
  31.  
  32.  
  33.  
  34. /* Compute MD5 hash of local file */
  35. int
  36. main(int argc, char **argv)
  37. {
  38. FILE *fp;
  39. MD5_CTX md;
  40. char buf[BUFSIZ];
  41. int len, k;
  42.  
  43.  
  44.     if (argc < 2)    {
  45.         fprintf (stdout, "%s: Usage\n\t%s filename [filename]...\n",basename(argv[0]), basename(argv[0]));
  46.         exit (1);
  47.     }
  48.     for (k = 1; k < argc; k++)    {
  49.         fp = fopen (argv[k], "rb");
  50.         if (!fp)    {
  51.             fprintf (stdout, "%s: Can't open file '%s'\n",basename(argv[0]), argv[k]);
  52.             continue;
  53.         }
  54.  
  55.         MD5Init(&md);
  56.  
  57.         while((len = fread(buf,1,BUFSIZ,fp)) != 0)
  58.             MD5Update(&md,(unsigned char *)buf,len);
  59.         fclose (fp);
  60.         MD5Final(&md);
  61.         printf ("%s:\t%-16s\t", basename(argv[0]), argv[k]);
  62.         for(len=0;len<16;len++)    /* Write hashed password */
  63.             printf("%02x",md.digest[len] & 0xff);
  64.         putchar ('\n');
  65.     }
  66.     return 0;
  67. }
  68.  
  69.  
  70.